import globals from "globals";
import pluginJs from "@eslint/js";
import tseslint from "typescript-eslint";
import importPlugin from 'eslint-plugin-import';

/** @type {import('eslint').Linter.Config[]} */
export default [
  { files: ["**/*.{js,mjs,cjs,ts}"] },
  { languageOptions: { globals: globals.browser } },
  pluginJs.configs.recommended,
  importPlugin.flatConfigs.recommended,
  ...tseslint.configs.recommended,
  {
    rules: {
      'prefer-const': 'off', // 禁用 prefer-const 规则，防止 let 自动变成 const
      'no-var': 'error', // 启用 no-var 规则，强制使用 let 或 const 而不是 var
      '@typescript-eslint/no-unused-vars': 'off', // 禁止未使用的变量
      '@typescript-eslint/no-explicit-any': 'off', // 禁止使用any
      'import/order': [
        'warn',
        {
          "groups": [
            ["builtin", "external"], // 内置模块和外部模块
            "internal", // 内部模块
            ["sibling", "parent"], // 同级和父级模块
            "index" // index 文件
          ],
          "newlines-between": "never" // 不同组之间有换行
        }
      ],
      "import/no-duplicates": "error", // 禁止重复导入
      // "import/no-unresolved": "off", // 禁用 import/no-unresolved 规则
    },
    settings: {
      'import/resolver': {
        typescript: {
          // 指定 tsconfig.json 的路径
          project: './tsconfig.json',
        },
      },
    },
  },
];